
`timescale 1ns / 1ns
module AsyncTransmitterTest; 

  wire oTxBusy; 
  wire oTx; 
  reg  [7:0]  iTxData; 
  reg  iTxStart; 
  reg  iClk; 
  AsyncTransmitter DUT  ( 
      .oTxBusy (oTxBusy ) ,
      .oTx (oTx ) ,
      .iTxData (iTxData ) ,
      .iTxStart (iTxStart ) ,
      .iClk (iClk ) ); 



// "Clock Pattern" : dutyCycle = 50
// Start Time = 0 ns, End Time = 100 us, Period = 20 ns
  initial
  begin
	iClk  = 1'b0  ;
	repeat(5000) begin 
	  #10  iClk  = 1'b1  ;
	  #10  iClk  = 1'b0  ;
	end
  end


// "Constant Pattern"
// Start Time = 0 ns, End Time = 100 us, Period = 0 ns
  initial
  begin
	  iTxStart  = 1'b0  ;
	 # 20	  iTxStart  = 1'b1  ;
	 # 20	  iTxStart  = 1'b0  ;
	 # 99960 ;
// dumped values till 100 ns
  end


// "Constant Pattern"
// Start Time = 0 ns, End Time = 100 us, Period = 0 ns
  initial
  begin
	  iTxData  = 8'b01011001  ;
	 # 100000 ;
// dumped values till 100 ns
  end

  initial
	#100000 $stop;
endmodule
